package com.wtf.dsp.admin.model.vo;

import com.baomidou.mybatisplus.annotation.DbType;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * date: 2022/6/18 10:59
 * @author linhuanyou
 * @email 496558736@qq.com
 * @version 1.0
 */
@Data
@ToString
@ApiModel("数据源响应类")
public class DsVO {
    @ApiModelProperty(value = "是否主数据源")
    private boolean primary;
    @ApiModelProperty(value = "命名空间")
    private String ns;
    @ApiModelProperty(value = "数据库类型")
    private DbType dbType;
    @ApiModelProperty(value = "数据源")
    private String ds;
    @ApiModelProperty(value = "主机地址")
    private String host;
    @ApiModelProperty(value = "端口")
    private Integer port;
    @ApiModelProperty(value = "用户")
    private String username;
    @ApiModelProperty(value = "密码")
    private String password;
    @ApiModelProperty(value = "数据库")
    private String dbName;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+08")
    private Date createTime;
    //客户端创建数据库连接等待超时时间，超时则抛出异常，默认30秒
    @ApiModelProperty(value = "客户端创建数据库连接等待超时时间")
    private Long connectionTimeout;
    //测试连接是否空闲的间隔时间，默认5秒
    @ApiModelProperty(value = "测试连接是否空闲的间隔时间，默认5秒")
    private Long validationTimeout;
    //连接允许最长（空闲时间），超过该值则被强制断开（关闭），默认600000（10分钟）
    @ApiModelProperty(value = "连接允许最长（空闲时间）")
    private Long idleTimeout;
    //检测连接泄露的阈值，超过该时间则日志警告，默认为0（禁用）[连接被占用的超时时间，超过1分钟客户端没有释放连接则强制回收该连接，防止泄露]
    @ApiModelProperty(value = "检测连接泄露的阈值")
    private Long leakDetectionThreshold;
    //连接最长生命周期时间，当连接存活时间超过设置值之后会被关闭退休处理，默认1800000（30分钟）
    @ApiModelProperty(value = "连接最长生命周期时间")
    private Long maxLifetime;
    //连接池最大连接数量，默认10g个
    @ApiModelProperty(value = "连接池最大连接数量")
    private Integer maxPoolSize;
    //连接池最小空闲连接数量，默认10个
    @ApiModelProperty(value = "连接池最小空闲连接数量")
    private Integer minIdle;
    //连接测试查询语句
    @ApiModelProperty(value = "连接测试查询语句")
    private String connectionTestQuery;

}

